Encodes the input raw data using the ABIC encoder.
Syntax
Visual Basic (Usage) | Copy Code |
---|
Dim instance As RasterCodecs
Dim inputData() As Byte
Dim align As Integer
Dim width As Integer
Dim height As Integer
Dim biLevel As Boolean
Dim value() As Byte
value = instance.EncodeAbic(inputData, align, width, height, biLevel)
|
Parameters
- inputData
- A byte array which contains the input data.
- align
- Number of bytes aligned for uncompresed input data.
- width
- Image width, in pixels.
- height
- Image height, in pixels.
- biLevel
- true to indicate bi-level encoding, false to indicate 4-bit grayscale encoding.
Return Value
A byte array that contains the ABIC encoded data.
Example
This example will load a file and encode as as ABIC. Decodes the data again before saving it to a destination file
Visual Basic | Copy Code |
---|
Public Sub EncodeDecodeAbicExample()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
Dim destDataFile As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_Abic.bmp"
Console.WriteLine("Loading the source image as 1 bits/pixel")
Dim srcImage As RasterImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1)
Console.WriteLine("Saving the image to memory as RAW format")
Dim ms As MemoryStream = New MemoryStream()
codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel)
Console.WriteLine("Encoding the data as ABIC")
Dim rawData As Byte() = ms.GetBuffer()
ms.Close()
Dim abicData As Byte() = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, False)
Console.WriteLine("Deconding the data back as RAW")
rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, False)
Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0)
Dim y As Integer = 0
Do While y < destImage.Height
Dim bufferIndex As Integer = y * destImage.BytesPerLine
destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine)
y += 1
Loop
codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel)
srcImage.Dispose()
destImage.Dispose()
codecs.Dispose()
RasterCodecs.Shutdown()
End Sub |
C# | Copy Code |
---|
public void EncodeDecodeAbicExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; string destDataFile = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_Abic.bmp"; // Load the file save it to a memory stream as RAW Console.WriteLine("Loading the source image as 1 bits/pixel"); RasterImage srcImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1); Console.WriteLine("Saving the image to memory as RAW format"); MemoryStream ms = new MemoryStream(); codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel); Console.WriteLine("Encoding the data as ABIC"); byte[] rawData = ms.GetBuffer(); ms.Close(); // Encode this data as ABIC byte[] abicData = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, false); // Decode the data back to RAW Console.WriteLine("Deconding the data back as RAW"); rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, false); // Create a new image from this data RasterImage destImage = new RasterImage( RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0); // Add the scan lines for(int y = 0; y < destImage.Height; y++) { int bufferIndex = y * destImage.BytesPerLine; destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine); } // Save this image to disk codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel); srcImage.Dispose(); destImage.Dispose(); // Clean up codecs.Dispose(); RasterCodecs.Shutdown(); } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also